標準のODBC機能を拡張するTimesTen組込みプロシージャについては、『Oracle TimesTen In-Memory Database APIおよびSQLリファレンス・ガイド』の組込みプロシージャに関する章を参照してください。TimesTen組込みプロシージャは、CallableStatementインタフェースを使用して実行できます。
組込みプロシージャを実行するには、次の書式を使用します。
CallableStatement.execute("{ Call Procedure }")組込みプロシージャを準備および実行するには、次の書式を使用します。
CallableStatement cStmt; cStmt = con.prepareCall("{ Call Procedure }"); cStmt.execute();結果セットを返す組込みプロシージャについては、theResultSet get*()メソッドを使用して、返されたResultSetからデータを取得できます。例2.11を参照してください。
ttCkptプロシージャをコールしてファジー・チェックポイントを開始するには、次のように入力します。
Connection con; CallableStatement cStmt; ....... cStmt = con.prepareCall("{ Call ttCkpt }"); cStmt.execute(); con.commit(); // commit the transaction
この例では、ttDataStoreStatusプロシージャをコールして、返される結果セットを印刷します。
「結果セットの使用」に示した例とは異なり、この例では、ResultSet.getStringを使用して、バイナリであるContextフィールドを取得します。これは、出力データは処理で使用されるのではなく、印刷されるためです。Context値を印刷しない場合は、ResultSet.getBytesメソッドを使用すると、より高いパフォーマンスが得られます。
ResultSet rs; cStmt = con.prepareCall("{ Call ttDataStoreStatus }"); if (cStmt.execute() == true) { rs = cStmt.getResultSet(); System.out.println("Fetching result set..."); while (rs.next()) { System.out.println("\n Data store: " + rs.getString(1)); System.out.println(" PID: " + rs.getInt(2)); System.out.println(" Context: " + rs.getString(3)); System.out.println(" ConType: " + rs.getString(4)); System.out.println(" memoryID: " + rs.getString(5)); } rs.close(); } cStmt.close();